package com.yunbao.ioc.factory;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * Created by louisyuu on 2020/3/3 下午2:25
 */
public interface BeanFactory {


    /**
     * @param name  bean名称
     * @param clazz 获取的bean类型
     * @param <T>
     * @return
     */
    <T> T getBean(String name, Class<T> clazz);


    /**
     * 根据bean名称获取唯一的bean
     *
     * @param name
     * @return
     */
    Object getBean(String name);


    /**
     * 获取所有bean
     *
     * @return
     */
    Collection<Object> getBeans();


    /**
     * 获取所有bean
     *
     * @return
     */
    <T> List<T> getBeans(Class<T> type);


}
